package com.yxq.mdt.app.modules.personal.model;

import com.yxq.mdt.app.modules.auction.bean.SendGoodsNum;
import com.yxq.mdt.app.modules.personal.bean.MainPersonTokenBean;
import com.yxq.mdt.app.modules.personal.bean.MainPersonalImNumber;
import com.yxq.mdt.app.modules.personal.bean.MainSaveAddImNumber;
import com.yxq.mdt.app.modules.personal.bean.MyPersonalBean;
import com.yxq.mdt.app.modules.personal.bean.RechargeRecordBean;

import io.reactivex.Observable;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Query;

public interface MainPersonalApi {
    /**
     * 获取个人信息
     *
     * @return
     */
    @GET("/lbs/gs/user/getMyGaUserExtVoById")
    Observable<MyPersonalBean> getPersonalModel(@Query("token") String token);

    /**
     * 获取token
     *
     * @param userId
     * @return
     */
    @POST("/lbs/user/createToken")
    @FormUrlEncoded
    Observable<MainPersonTokenBean> getToken(@Field("userId") String userId);

    /**
     * 获取im账号跟密码
     *
     * @return
     */
    @GET("lbs/getUserNameAndPassword")
    Observable<MainPersonalImNumber> getImData();

    /**
     * @param nickName
     * @return 新增修改 im 账号
     */
    @POST("/lbs/saveAndUpdateIMUser")
    @FormUrlEncoded
    Observable<MainPersonalImNumber> getSaveImUser(@Field("nickName") String nickName);

    /**
     * 我的支出
     *
     * @return
     */
    @GET("/lbs/gsGive/selectByPageList")
    Observable<RechargeRecordBean> selectByPageList(@Query("orderByClause") String orderByClause, @Query("pageNum") int pageNum, @Query("pageSize") int pageSize);

    /**
     * 我的收益
     *
     * @return
     */
    @GET("/lbs/gsGive/selectEarningsByPageList")
    Observable<RechargeRecordBean> selectEarningsByPageList(@Query("orderByClause") String orderByClause, @Query("pageNum") int pageNum, @Query("pageSize") int pageSize);

    /**
     * 查询待确认订单数量
     *
     * @return
     */
    @GET("mdf/api/webOrder/selectByOrderSendGoodsNum")
    Observable<SendGoodsNum> selectByOrderSendGoodsNum();

}
